/*
 * -------------------------------------------------------------
 *  FECHA      HORA     NOMBRE           COMENTARIO
 * -------------------------------------------------------------
 *  14/05/08   19:19    ALEX             Creación de interface
 *
 *                     
 *
 * @author Alex, Javi, David y Sergio
 */

package net.ieslaferreria.infoCiutat;

import java.util.Date;
import java.util.Vector;

/**
 *
 * @author Alex, Javi, David y Sergio
 */
public interface ParametresCerca {
    
    /**
     * Afegeix un codi de xarxa a l'atribut xarxesProhibides.
     * 
     * @param codiXarxa
     */
    public void addXarxaProhibida (int codiXarxa);
    
    /**
     * Elimina la xarxa especificada per codi als parametres de l'atribut
     * xarxesProhibides.
     * 
     * @param codiXarxa
     */
    public void delXarxaProhibida (int codiXarxa);
    
    /**
     * Retorna l'atribut xarxesProhibides. Si estan comprovades. En cas
     * contrari s'excutarà el metode comprovaXarxesProhibides.
     * 
     * @return Vector
     */
    public Vector getXarxesProhibides ();
    
    /**
     * Determina l'atribut horaInici que dirà la hora a que s'iniciarà la ruta.
     * 
     * @param int
     */
    public void setHoraInici (int horaInici);
    
    /**
     * Determina l'atribut horaFinal que dirà la hora a que es finalitzarà 
     * la ruta.
     * 
     * @param int
     */
    public void setHoraFinal (int horaFinal);
    
    /**
     * Determina l'atribut data que indicarà el dia a que es realitzarà la ruta.
     * 
     * @param Date
     */
    public void setData (Date data);
    
    /**
     * Determina l'atribut puntInici que indica on comença la ruta.
     * 
     * @param puntInici
     */
    public void setPuntInici (Punt puntInici);
    
    /**
     * Determina l'atribut puntFinal que indica on acaba la ruta.
     * 
     * @param puntFinal
     */
    public void setPuntFinal (Punt puntFinal);
    
    /**
     * Determina l'atribut esforcFisic que dirà si volem una ruta que impliqui
     * esforç físic o no.
     * 
     * @param Boolean
     */
    public void setEsforcFisic (Boolean esforcFisic);
    
    /**
     * Determina l'atribut subterrani que dirà si volem una ruta que impliqui 
     * l'utilització de medis de transport subterranis.
     * 
     * @param Boolean
     */
    public void setSubterrani (Boolean subterrani);
    
    /**
     * Retorna l'atribut horaInici expressat en minuts.
     * 
     * @return int
     */
    public int getHoraInici ();
    
    /**
     * Retorna l'atribut horaFinal expressat en minuts.
     * 
     * @return int
     */
    public int getHoraFinal ();
    
    /**
     * Retorna l'atribut data.
     * 
     * @return Date
     */
    public Date getData ();
    
    /**
     * Retorna l'atribut puntInici.
     * 
     * @return Punt
     */
    public Punt getPuntInici ();
    
    /**
     * Retorna l'atribut puntFinal.
     * 
     * @return Punt
     */
    public Punt getPuntFinal ();
    
    /**
     * Retorna l'atribut esforcFisic.
     * True implica l'utilització de medis amb esforç físic.
     * False implica la no utilització de medis amb esforç físic.
     * 
     * @return Boolean
     */
    public Boolean getEsforcFisic ();
    
    /**
     * Retorna l'atribut subterrani.
     * True implica l'utilització de medis subterranis
     * False implica la no utilització de medis subterranis.
     * 
     * @return Boolean
     */
    public Boolean getSubterrani ();
    
    /**
     * Retorna la velocitat més alta entre totes les xarxes no prohibides.
     * 
     * @return int
     */
    public int getVelocitatMaxima ();

}
